Migo商城2.0 商品详情页面的实现 二十一
分析:
正常来说,这块是可以单独拿出来做一个系统,然后进行页面静态化,提高响应速度,这里就不做那么麻烦了,直接找后台管理系统这里对外提供web服务,页面静态化以后有时间再做,反正也没多少技术含量
我们打开一个商品的链接,大概是如下的形式:
http://www.migo.com/item/{itemId}.html
从上图应该就可以看到jd商品详情页面应该是一个单独的工程,后面直接跟了商品的id,好了,分析完毕,开搞代码:
如图:
通过商品id
查询商品,返回数据加入modelAndView
中
portal
系统中导入POJO
注意点如图:
1 | package com.migo.portal.pojo; |
controller代码:
1 | package com.migo.portal.controller; |
service代码:
1 | package com.migo.portal.service; |
manage
系统提供接口服务:
1 | package com.migo.controller.webs; |
测试结果:
添加商品描述:
portal
工程controller
model
加入itemDesc
属性
代码:
1 | package com.migo.portal.controller; |
service
实现
1 |
|
manage
系统提供相应接口服务
1 | /** |
测试结果:
显示商品规格参数
portal
工程controller
model
加入itemParam
属性
controller
代码:
1 | package com.migo.portal.controller; |
如此图所示,得到itemParam
后直接显示,那么需要对得到数据里面参数做页面格式化:
所以service
代码为:
1 | public String queryItemParamItemByItemId(Long itemId) { |
manage
系统提供服务接口:
controller
代码
1 | /** |
service
代码:
1 | /** |
测试得到结果:
portal
和后端manage
系统中相应service
中加入缓存逻辑:
portal
端添加逻辑代码:
1 | package com.migo.portal.service; |
manage
端添加缓存代码:
ItemService
1 | public Item queryByIdse(Long itemId) { |
ItemParamItemService
1 | /** |
ItemDescService
1 | package com.migo.service; |
关于两个系统间缓存同步问题会在后面通过消息中间件处理,这里就不添加临时解决方案了
上面的代码其实还有进一步 的优化方法,这里留给读者思考了,又搞到凌晨1点多了,睡觉!